int lock = 0;
// 临界区代码段
extern void critical_region();
// 非临界区的代码段
extern void noncritical_region();

void process0() {
	while (1) {
		// 进入临界区
		// 判断是否有锁，如果没有锁，死循环等待锁被释放
		while ( lock );
		// 加锁
		lock = 1;
		critical_region();
		// 释放锁
		lock = 0;

		noncritical_region();
	}
}

void process1() {
	while (1) {
		// 进入临界区
		// 判断是否有锁，如果没有锁，死循环等待锁被释放
		while ( lock );
		// 加锁
		lock = 1;
		critical_region();
		// 释放锁
		lock = 0;
		
		noncritical_region();
	}
}